The present invention relates to the art of processing and rendering image data in digital color printing and reproduction systems and in digital display systems. More specifically, the present invention relates to processing image data by applying pixel tags to the image data stored in an imaging device frame buffer based on imaging operator type classifications or based on other operator parameters using simple interpretive programming language commands.
Computer-based imaging systems have become popular for producing both electronic and hard copy images due in part to the proliferation and availability of desktop publishing programs. In such systems, a host computer typically generates data that describes the image and then transfers the data to an image-generating device where it is converted into a format that can be used by the device. One common form of document representation is a page description language (PDL), such as, for example, PostScript available from Adobe. Nearly all page description languages include a set of interpretive programming language commands that enable document manipulation.
Page description language, i.e., PostScript, compatible desktop publishing and other image producing application programs generate graphic commands which are converted into interpretive page description language commands. Imaging device hardware and software interprets the page description language commands so that the proper type and sequence of graphics operations can be performed to generate the images created in the desktop publishing program. Typical graphics operations executed by the imaging device include text, graphics, and pictorial (bitmap) operations. The commands for these operations are called xe2x80x9cpaint operatorsxe2x80x9d and are embedded in the page description language.
For each paint operation, the interpretation process in the imaging device typically also includes a step of determining the proper set of graphic state arguments, such as color, current transformation matrix, and the like, that are to be applied to the operand of each paint operator. Using this information, pixel display values are created and stored in a frame buffer to represent the colors and shapes of the paint operands. A print engine in the imaging device forms the image based on the pixel display values stored in the frame buffer. The process within the imaging device of converting the image data received from the host computer into the pixel display values arranged in the frame buffer for ready use by a print engine or display hardware is commonly known in the art as xe2x80x9crenderingxe2x80x9d an image.
Within the above framework, it is well known in the digital imaging art to use a single collection of parameters to control the production of text, images, and graphics on a raster output device. The collection of parameters in the PostScript page description environment is called the xe2x80x9cCurrent Graphics State.xe2x80x9d For convenience in connection with describing the present invention, the expression xe2x80x9ccurrent graphics statexe2x80x9d will be used to describe a data structure holding parameters used to define the global framework in which the graphics operators execute. Other PostScript type expressions will be used as well. It is not meant, however, to imply that the invention is limited to the PostScript environment or that the present invention is in any way limited in application to PostScript machines.
In practice, the imager continuously references the current graphics state parameter set to render images based on the information generated by the page description language interpreter as it executes normal sources of program text, such as, for example, standard PostScript input files. The page description language interpreter is sometimes located in the host computer but is typically embedded in the printer or display device. When the imaging operators used to render the image on a page or screen are of homogenous object type, i.e., all graphics object types, all text object types, or all image (bitmap) object types, there is no need to modify the contents of the current graphics state during image rendering thereby realizing efficient image data processing. However, current sophisticated desktop publishing systems allow the user to combine different types of image objects into a single composite document. For example, a user can combine photographic images, text, and business graphics such as charts into a single document wherein these images may be either color, black/white, or contain components of both as well.
To achieve satisfactory results, each of these objects needs to be processed differently so that a high quality document can be produced. More particularly with regard to the imaging device, the parameters contained in the current graphics state must be adjusted each time there is a change between image object types so that the proper pixel display values are arranged in the frame buffer. In that way, photographic objects can be processed using a first set of current graphics state parameters, while business graphics, text, etc. may be processed another way using different sets of current graphics state parameters.
To resolve this problem, object oriented rendering systems have been developed. In these systems, the objects which make up a composite document are rendered (processed) uniquely. In certain imaging systems, such as, for example, the Xerox Intelligent Color System, object oriented imaging is implemented by PostScript operator overloading. In operator overloading, the particular imaging operators, such as, for example, show (text), fill or stroke (graphics), and image (pictorial) are overloaded or overwritten so that if the parameters contained in the present current graphics state are incorrect or inappropriate for rendering certain objects, they are modified before executing the actual painting operator.
Although the above-described operator overloading technique uniquely renders each object making up a composite document to achieve satisfactory image quality results, the time required to switch the parameters in the current graphics state and, in addition, the time required for operator overloading results in a significant negative performance impact. This is especially true when text and graphics are handled differently in the imaging device. Further, the negative performance impact becomes more pronounced when a composite document contains a significant amount of mixed text and graphics objects.
Several schemes have been proposed for assisting print engines to more faithfully and accurately render multiple object type images. One such scheme associates tag information with the pixel display values stored in the frame buffer. The tag information classifies portions of the image according to object type so that the print engine can print or display the image using specialized hardware, firmware, or the like tuned to react to the tag information.
Although pixel tagging schemes have met with some success, they are typically difficult to implement and awkward to use. Hardware pixel tagging schemes are usually overly print engine dependent and software methods are not always compatible with the native page description language commands used by the print engine.
Accordingly, there is a need for a method and apparatus for applying pixel tags to image data in a digital imaging device using simple generic interpretive programming language commands that are compatible with nearly all page description languages that are presently available.
In accordance with the present invention, a method and apparatus are provided for registering object characterization information in the form of tags appended to the plurality of pixel display values stored in the frame buffer of an imaging device using simple interpretive programming language commands such as simple page description language commands. The invention registers the tag information in the frame buffer based on the object type of the imaging data derived from the page description language data received into the imaging device. The pixel data image tagging is useful to differentiate between bit maps, text, line art and fill art in gray scale, RGB, and CMYK frame buffers to enable per-pixel segmentation tags.
In accordance with another aspect of the present invention, an auxiliary color transformation function is provided, together with an auxiliary frame buffer channel or plane, so that pixel tags can be developed by the auxiliary color transfer function and written directly into the auxiliary buffer channel or plane without affecting the standard color planes.
In each of the above aspects of the present invention, the pixel tags are directly available to the print engine hardware or firmware in digital printing or reproduction systems that are adapted to perform special rendering operations based upon the tag information.
One advantage of the present invention is that the information regarding the object types of the image data is not lost during the translation into the frame buffer digital representation of the image. Accordingly, that information can be used downstream in the printing process to directly control the operation of the active elements in the print engine, such as, for example, a laser diode in a laser printer, or a printhead in an ink jet printer, or the like, to form the image.
Another advantage of the present invention is that the task of segmenting objects is simplified because the tag information regarding the object type classification is immediately available and recognizable in the digital representation of the image contained in the frame buffer.
Still other advantages and benefits of the invention will become apparent to those skilled in the art upon a reading and understanding of the following detailed description.